import dayjs from '@/plugins/dayjs'
/*
transMeetingList 函数 如下

return _result.map((x) => ({
	meeting: x.meeting,
	day: x.day,
	startGrid: x.startGrid,
	endGrid: x.endGrid,
	col: x.col,
	totalSpan: x._total.num,
}))
*/
import { transMeetingList } from './translate'
import { MeetingInfo } from '@/api/myMeeting/interface'
/*
type ArrayType<T> = T extends Array<infer U> ? U : T
这段 TypeScript 类型定义是在定义一个叫做 ArrayType 的泛型类型。让我们分解一下这段代码：

ArrayType<T>: 这表示定义了一个泛型类型 ArrayType<T>，其中 T 是一个类型参数。
T extends Array<infer U> ? U : T: 这是一个条件类型，用于判断 T 是否是一个数组类型。
如果 T 是数组类型 Array<infer U>，那么返回数组中的元素类型 U；
如果 T 不是数组类型，那么返回原始的类型 T。

换句话说，这段代码是用于从一个可能是数组类型的泛型中提取数组元素的类型，
如果传入的类型是数组类型，那么返回数组中的元素类型；
如果传入的类型不是数组类型，那么返回原始的类型。
这种技术通常用于提取泛型中的具体类型信息，方便进行类型转换和类型操作。
*/
export type IMeeting = ArrayType<ReturnType<typeof transMeetingList>>
export type NodeType = Node & ParentNode
export type resultMeeting = {
	meeting: MeetingInfo
	day: dayjs.Dayjs
	startTime: dayjs.Dayjs
	endTime: dayjs.Dayjs
	startGrid: number
	endGrid: number
	/** 属于从左往右第几块 */
	col: number
	/** 临时变量 */
	_total: {
		num: number
	}
	/** 星期几 */
	_weekDay: number
	_flag?: 0 | 1
}
